﻿using Microsoft.Xna.Framework;

namespace SaveTheQueen.Actions
{
    /// <summary>
    /// Base class of all actions.
    /// <remarks>It has the unique porpouse of begin a base class for all actions and that dosen't require a generic parameter.</remarks>
    /// </summary>
    public abstract class CoreAction : GameComponent
    {
        protected bool isRunning;
        protected bool isFinished;
        protected bool isLopping;

        /// <summary>
        /// Create a new instance of the base class of all actions.
        /// </summary>
        /// <param name="game"></param>
        public CoreAction(Game game) : base(game) { }

        /// <summary>
        /// Get or set the current action state, if it is working or not.
        /// </summary>
        public bool IsRunning
        {
            get { return isRunning; }
            set { isRunning = value; }
        }
        /// <summary>
        /// Get the boolean that state if the work is already done
        /// </summary>
        public bool IsFinished
        {
            get { return isFinished; }
        }
        /// <summary>
        /// Get or set a boolean that allow the action to repeat itself on completing.
        /// </summary>
        public bool IsLopping
        {
            get { return isLopping; }
            set { isLopping = value; }
        }
    }
}
